<?php

class Pedido_model extends CI_Model
{

    
    function __construct()
    {
        parent::__construct();
        $this->tablename = 'users';
    }
    
    function buscarInsumo($queryString,$idUsuario){
        return $this->db->query("SELECT IdInsumo, NombreInsumo,Unidad FROM Insumo WHERE IdUsuario=$idUsuario and NombreInsumo LIKE '$queryString%' LIMIT 10")->result_array();;
    }
    
    function guardarInsumo($insumo){ //donde insumo es un arreglo: Nombre, Cantidad,Unidad,PreUnid,Descripcion,Subtotal,IdLineaPedido,Subtotal
        $this->db->insert('itemaproxinsumo',$insumo);
    }
    function guardarInsumoCot($insumo){ //donde insumo es un arreglo: Nombre, Cantidad,Unidad,PreUnid,Descripcion,Subtotal,IdLineaPedido,Subtotal
        $this->db->insert('insumotempo',$insumo);
    }
    function guardarFase($fase){ //donde insumo es un arreglo: NombreTarea, Descripcion,UnidadCosteo,PUniCost,CantUni,IdLineaPedido,idCategoríaTrabab
        $this->db->insert('TrabajoTempo',$fase);
    }
    function guargarLineaItem($linea){//campos:NombreItem, Descripcion, Cantidad, Subtotal, IdPedido, IdPersona (cliente),PrecioUnitario,IdCategoria
        $this->db->insert('LineaPedido',$linea);
        return $this->db->insert_id();  
    }
    function guargarPedido($pedido){//campos: FechaRecepcion, FechaEntrega, Prioridad, TiempRetraso (NULL), Total, Adelanto, IdEstadoPedido, IdCliente, Usuario_IdUsuario
        $this->db->insert('Pedido',$pedido);
        return $this->db->insert_id();  
    }
    function comboEstados(){
        $cad="select IdEstadoPedido as value, Descripcion as label from EstadoPedido order by 2";
        $query = $this->db->query($cad)->result_array();
        return $query;
    }
    function comboCategorias(){
        $cad="select IdCategoria as value, Nombre as label from CategoriaItem";
        $query = $this->db->query($cad)->result_array();
        return $query;
    }
    function comboTrabajos($IdCategoria,$user){
        $cad="select IdTrabajo as value, Nombre as label from Trabajo where idCategoriaTrabab=".$IdCategoria." and IdUsuario=".$user;
        $query = $this->db->query($cad)->result_array();
        return $query;
    }
    function comboTrabajosAll($user){
        $cad="select IdTrabajo as value, Nombre as label from Trabajo where IdUsuario=".$user;
        $query = $this->db->query($cad)->result_array();
        return $query;
    }
    function obtenTrabajo($user,$trabajo){
        $cad="select IdTrabajo as value, Nombre as nom from Trabajo where IdTrabajo=$trabajo and IdUsuario=".$user;
        $query = $this->db->query($cad)->result_array();
        return $query;
    }
    function comboCategoTraba(){
        $cad="select idCategoriaTrabajo as value, Nombre as label from categoriatrabajo";
        $query = $this->db->query($cad)->result_array();
        return $query;
    }
    function buscarPedido($IdEstado,$usuarioSesion,$fecha,$fechahasta,$codigo,$cliente,$ruc,$razon,$DNI,$nombres,$apellidos){//campos: FechaRecepcion, FechaEntrega, Prioridad, TiempRetraso (NULL), Total, Adelanto, IdEstadoPedido, IdCliente, Usuario_IdUsuario
        $cad = "select ped.IdPedido as codPed,ped.IdCliente as codclient, ped.FechaRecepcion as Fechareg,ped.FechaEntrega as FechaEnt,per.RUC as ruc,
            per.RazonSocial as razon,ped.Detalle as detalle,ped.Total as tot, ped.Adelanto as adelt, ped.utilidad as util, ped.IGV as igv,
            per.Nombres as nombr,per.Apellidos as apellidos,est.Descripcion as estado,ped.Prioridad as prioridad,ped.IdEstadoPedido as idEstPed from EstadoPedido est,Pedido ped, Persona per where est.IdEstadoPedido=ped.IdEstadoPedido and ped.IdCliente=per.IdPersona and IdUsuario='".$usuarioSesion."' ";
      
        if ($IdEstado != "") {
            $cad = $cad . " AND ped.IdEstadoPedido = $IdEstado";
        }
        if ($fechahasta != "") {
            $cad = $cad . " AND ped.FechaRecepcion <= '".date("Y-m-d",strtotime($fechahasta))."'";
        }
        if ($fecha != "") {
            $cad = $cad . " AND ped.FechaRecepcion >= '".date("Y-m-d",strtotime($fecha))."'";
        }
        if ($codigo != "") {
            $cad = $cad . " AND ped.IdPedido = $codigo";
        }

        if ($cliente != "") {
            $cad = $cad . " AND  ped.IdCliente=$cliente";
        }
        if ($ruc != "") {
            $cad = $cad . " AND per.RUC LIKE '%$ruc%' ";
        }
        
        if ($razon != "") {
            $cad = $cad . " AND per.RazonSocial LIKE '%$razon%' ";
        }
        if ($DNI != "") {
            $cad = $cad . " AND per.DNI ='$DNI' ";
        }
        if ($nombres != "") {
            $cad = $cad . " AND per.Nombres LIKE '%$nombres%'";
        }
        if ($apellidos != "") {
            $cad = $cad . " AND per.Nombres LIKE '%$apellidos%'";
        }
        
  
        $query = $this->db->query($cad)->result_array();
        return $query; 
    }
    
    public function buscarLineaPedido($idPedido,$idCliente){
        $cad="Select lin.IdLineaPedido as codlinea, lin.NombreItem as nomItem, lin.Cantidad as cantidad, lin.Descripcion as descript, lin.PrecioUnitario as PU,
            cat.Nombre as nomCateg,lin.Subtotal as subt from LineaPedido lin, CategoriaItem cat where lin.IdCategoria=cat.IdCategoria and IdPedido=".$idPedido." and  IdPersona=".$idCliente;
        return $this->db->query($cad)->result_array();
    }
    public function buscarTrabajosLin($codLinea){
        $cad="Select trabt.idTrabajo as codTar, trab.Nombre as nom,categ.Nombre nomcatg, trabt.UnidadCosteo as unid, trabt.PUniCost as prec, 
            trabt.CantUni as cant from TrabajoTempo trabt, Trabajo as trab,CategoriaTrabajo categ 
            where categ.idCategoriaTrabajo=trabt.idCategoriaTrabajo and trabt.IdTrabajo=trab.IdTrabajo and IdLineaPedido=".$codLinea;
        return $this->db->query($cad)->result_array();
    }
    
    function buscarPedidoconInsumos($usuarioSesion,$fecha,$fechahasta,$codigo,$cliente,$ruc,$razon,$DNI,$nombres,$apellidos){//campos: FechaRecepcion, FechaEntrega, Prioridad, TiempRetraso (NULL), Total, Adelanto, IdEstadoPedido, IdCliente, Usuario_IdUsuario
        $cad = "select sum(insu.cant) as total, 
                ln.IdLineaPedido as idLin, ped.IdPedido as codPed,ped.IdCliente 
                as codclient, ped.FechaRecepcion as Fechareg,ped.FechaEntrega 
                as FechaEnt,per.RUC as ruc,per.RazonSocial as razon,
                per.Nombres as nombr,per.Apellidos as apellidos
                from lineapedido ln, Pedido ped, Persona per, 
                (select count(Insumo_IdInsumo) as cant, IdLineaPedido as linea
                from itemaproxinsumo where CantidadComprar>0 and Estado=0 group by 2)  insu
                where (ped.IdEstadoPedido=1 or ped.IdEstadoPedido=2 ) and 
                insu.linea=ln.IdLineaPedido and ped.IdCliente=per.IdPersona 
                and ln.IdPedido=ped.IdPedido and ped.IdUsuario='".$usuarioSesion."' ";
        
        if ($fechahasta != "") {
            $cad = $cad . " AND ped.FechaRecepcion <= '".date("Y-m-d",strtotime($fechahasta))."'";
        }
        if ($fecha != "") {
            $cad = $cad . " AND ped.FechaRecepcion >= '".date("Y-m-d",strtotime($fecha))."'";
        }
        if ($codigo != "") {
            $cad = $cad . " AND ped.codPed = $codigo";
        }

        if ($cliente != "") {
            $cad = $cad . " AND  ped.IdCliente=$cliente";
        }
        if ($ruc != "") {
            $cad = $cad . " AND per.RUC LIKE '%$ruc%' ";
        }
        
        if ($razon != "") {
            $cad = $cad . " AND per.RazonSocial LIKE '%$razon%' ";
        }
        if ($DNI != "") {
            $cad = $cad . " AND per.DNI ='$DNI' ";
        }
        if ($nombres != "") {
            $cad = $cad . " AND per.Nombres LIKE '%$nombres%'";
        }
        if ($apellidos != "") {
            $cad = $cad . " AND per.Nombres LIKE '%$apellidos%'";
         }
         $cad=$cad."  group by 2";
        $query = $this->db->query($cad)->result_array();
       
        return $query; 
    }
    
    public function obtenerInsumos($codPedido){
        $cad="select ins.NombreInsumo as nomInsu, ins.IdInsumo as idInsumo, ins.Unidad as unidad,
        ii.CantidadComprar as cant, ii.PrecioUnid as precio, ins.DetalleInsumo as desrip, 
            per.RazonSocial as proveedor, per.IdPersona as idProvedor,lin.IdLineaPedido as linea
        from pedido ped, lineapedido lin, itemaproxinsumo ii, persona per, insumo ins
        where ped.IdPedido=$codPedido and  ped.IdPedido=lin.IdPedido and lin.IdLineaPedido=ii.IdLineaPedido and 
          ii.Insumo_IdInsumo=ins.IdInsumo and ii.IdProveedor=per.IdPersona and ii.Estado<>1";
        return $this->db->query($cad)->result_array();
    }
    
    public function comboProveedor($IdInsu){
        $cad="select per.RazonSocial as label, pxi.IdPersona as value 
            from proveedorxinsumo pxi, persona per where pxi.IdInsumo=$IdInsu and per.IdPersona=pxi.IdPersona";
        return $this->db->query($cad)->result_array();
    }
    public function buscarPrecio($provedor,$ins){
        $cad="select PrecioUnidad as prec from proveedorxinsumo where IdPersona=$provedor and IdInsumo=$ins";
        return $this->db->query($cad)->result_array();
    }
    
    public function ingresarlistaCompra($dato){
        $this->db->insert('listacomprainsumos',$dato);
        return $this->db->insert_id();  
    }
    public function cracteristicaInsumo($dato){
        $this->db->insert('caracteristicainsumo',$dato);
        return $this->db->insert_id();  
    }
    public function creaInsumo($dato){
        $this->db->insert('insumo',$dato);
        return $this->db->insert_id();  
    }
    public function creaLineaCompra($dato){
        $this->db->insert('lineacompra',$dato);
        return $this->db->insert_id();  
    }
    public function cantidadDisponible($idInsumo){
        $cad="select CantidadDisponible from insumo where IdInsumo=$idInsumo";
        return $this->db->query($cad)->result_array();
    }
    public function actualizarInsumo($idInsumo,$dato){
        $this->db->where('IdInsumo', $idInsumo);
        $this->db->update('insumo', $dato); 
    }
    public function actualizarItemxInsumo($idInsumo,$linea,$dato){
        $this->db->where('Insumo_IdInsumo', $idInsumo);
         $this->db->where('IdLineaPedido', $linea);
        $this->db->update('itemaproxinsumo', $dato); 
    }
    public function buscarListaCompra($usuarioSesion,$fecha,$fechahasta,$codigo){
         $cad = "select * from listacomprainsumos where  IdUsuario='".$usuarioSesion."' ";      
        if ($fechahasta != "") {
            $cad = $cad . " AND FechaLista <= '".date("Y-m-d",strtotime($fechahasta))."'";
        }
        if ($fecha != "") {
            $cad = $cad . " AND FechaLista >= '".date("Y-m-d",strtotime($fecha))."'";
        }
        if ($codigo != "") {
            $cad = $cad . " AND IdListaCompraInsumos = $codigo";            
        }
        $query = $this->db->query($cad)->result_array();
       
        return $query; 
    }
    
    public function lineasCompra($codigo){
        
        $cad="select * from lineacompra where IdListaCompraInsumos=$codigo";    
        return $this->db->query($cad)->result_array();
    }
    public function busCodInsu($codInsu){
        $cad="select * from insumo where IdInsumo=$codInsu";
        return $this->db->query($cad)->result_array();
    }
    public function buscarProvedor($idProvedor){
        $cad="select RazonSocial from persona where IdPersona=$idProvedor";
        return $this->db->query($cad)->result_array();
    }
    
    public function actualizarPedido($idPed,$dato){        
        $this->db->where('IdPedido', $idPed);
        $this->db->update('pedido', $dato); 
    }
}
?>
